Customizing digital image transfer

ABSTRACT

A digital camera is disclosed for capturing digital images and organizing the captured images for subsequent transfer from the digital camera to an external device that utilizes the digital images. The digital camera includes a database having a plurality of customized profiles, wherein each customized profile contains a plurality of image utilization fields. A user selects one of the plurality of customized profiles from the database. The digital camera further includes a structure for defining a plurality of profile indices respectively corresponding to ones of the plurality of customized profiles, and an image sensor for capturing images. A profile index is associated with at least one captured image to identify the corresponding selected customized profile. The digital camera further includes a memory for receiving and storing the at least one captured image and the corresponding profile index.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims priority under 35 U.S.C. §120 and 365(c)as a continuation of International Application No. PCT/US00/15422, filedJun. 2, 2000, which claims priority to U.S. Provisional PatentApplication No. 60/137,094, filed Jun. 2, 1999. The disclosure of U.S.Provisional Patent Application No. 60/137,094 is herein incorporated byreference.

FIELD OF THE INVENTION

This invention relates generally to the field of digital cameras, and inparticular, to customizing digital images from a digital camera so thatthe digital images can be transferred to and used by an external device.

BACKGROUND OF THE INVENTION

The user experience concerning the transfer of pictures from a digitalcamera to an external device, such as a personal computer (PC), has notbeen positive for a number of reasons. There are numerous steps toperform to initiate an image transfer including connecting the digitalcamera, initializing the PC, such as running a transfer application onthe PC, choosing an album or destination directory for the images, anddeleting images off the digital camera. Ultimately, the process can betime consuming if a large number of images needs to be transferred. Inaddition, the transfer of images from a digital camera to an externaldevice may not be consistent from session to session. The inconsistencyresults in unorganized images, ineffective use of images, loss ofinterest in using images, and possible loss of images.

SUMMARY OF THE INVENTION

Accordingly, it is an object of the present invention to facilitateorganization of digital images captured by a digital camera forsubsequent transfer from the digital camera to an external device thatutilizes the digital images.

This object is achieved by a digital camera for capturing digital imagesand organizing the captured images for subsequent transfer from thedigital camera to an external device that utilizes the digital images,comprising:

-   -   (a) means for providing a database having a plurality of        customized profiles, wherein each customized profile contains a        plurality of image utilization fields;    -   (b) means for selecting one of the plurality of customized        profiles from the database;    -   (c) means for defining a plurality of profile indices        respectively corresponding to ones of the plurality of        customized profiles;    -   (d) an image sensor for capturing images;    -   (e) means for associating a profile index with at least one        captured image to identify the corresponding selected customized        profile; and    -   (f) storage means for receiving and storing the at least one        captured image and the corresponding profile index.

Advantages

It is an advantage of the present invention to provide a mechanism whichenables a custom configured and unattended image transfer from a digitalcamera to an external device.

It is another advantage of the present invention to permit multipleconfigurations to be resident on the digital camera.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system in accordance with the presentinvention which enables the customization of image organization andtransfer for particular users or events;

FIGS. 2A and 2B are flow diagrams depicting the steps used in editing anautomation profile on the digital camera and on the host computer ofFIG. 1, respectively, in accordance with the present invention;

FIGS. 3A and 3B are examples of customized profiles, and

FIG. 3C is an example of a default profile;

FIG. 4 is a flow diagram depicting the steps used in capturing an imagewith the digital camera of FIG. 1 in accordance with the presentinvention;

FIG. 5 is a flow diagram depicting the steps used in automated imagetransfer in accordance with the present invention; and

FIG. 6 shows an image display on the digital camera of FIG. 1 with an“Autotransfer Preference Menu” providing a list of profiles and “EditProfile” and “Create New Profile” options in connection with block 210of FIG. 2A.

Attached is an appendix of codes which can be used in the practice ofthe present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 is a block diagram of a digital camera 10, a host computer 40(external device) and a Network Service Provider 70 which enables thecustomization of image organization and transfer of digital images fromthe digital camera 10 to the host computer 40, such as a Dell DimensionXPS M200 personal computer for the images to be utilized. As shown inFIG. 1, the digital camera 10 is supplied along with a compact disc(CD-ROM) 32 or a floppy disk 34.

The digital camera 10 produces digital images that are stored on aremovable memory card 30. The digital camera 10 includes a zoom lens 12having zoom and focus motor drives (not shown), and an adjustableaperture and shutter (not shown). The zoom lens 12 focuses light from ascene (not shown) on an image sensor 14, for example, a single-chipcolor charge-coupled device (CCD), using the well-known Bayer colorfilter pattern. The analog output signal from the image sensor 14 isconverted to digital data by an analog-to-digital (A/D) converter 16.The digital data is processed by a processor 18 controlled by firmwarestored in firmware memory 28, which can be Flash EPROM memory. Theprocessed digital image file is provided to a memory card interface 20which stores the digital image file on the removable memory card 30. Theremovable memory card 30, which is well-known to those skilled in theart, can include, for example, a memory card adapted to the PCMCIA cardinterface standard, as described in the PC Card Standard, Release 2.0,published by the Personal Computer Memory Card InternationalAssociation, Sunnyvale, Calif., September 1991. The removable memorycard 30 can also be adapted to the Compact Flash interface standard,such as described in the CompactFlash Specification Version 1.3,published by the CompactFlash Association, Palo Alto, Calif., Aug. 5,1998. Other types of digital memory devices, such as magnetic harddrives, magnetic tape, or optical disks, could alternatively be used tostore the digital images.

The processor 18 performs color interpolation followed by color and tonecorrection, in order to produce rendered sRGB image data. The renderedsRGB image data is then JPEG compressed and stored as a JPEG image fileon the removable memory card 30. The processor 18 also creates a reducedresolution or “thumbnail” size image data that is supplied to a colorimage display 22, such as a liquid crystal display (LCD), which displaysthe captured image for the user to review. A camera user interface isused to control the digital camera 10. The camera user interfaceincludes a series of user buttons 24 and a graphical user interface(GUI) displayed on the image display 22. The GUI is controlled by theuser interface portion of the firmware stored in the firmware memory 28.The camera user interface can also include a digital-to-analog (D/A)converter (not shown) and a miniature speaker (not shown) which makesaudible sounds when a new picture is taken, or when the user changesmodes or advances to review the next stored image. The digital camera 10can also include a video output driver (not shown) and connector (notshown) for displaying the captured images on a TV (not shown).

After a series of images has been taken by the digital camera 10 andstored on the removable memory card 30, the removable memory card 30 canbe inserted into a memory card reader 48 in the host computer 40.Alternatively, an interface cable 36 can be used to connect between ahost interface 26 in the digital camera 10 and a camera interface 46 inthe host computer 40. The interface cable 36 can conform to, forexample, the well-know universal serial bus (USB) interfacespecification.

The captured images from the digital camera 10 can be downloaded to thehost computer 40 and stored on a hard drive 56 under the control of acentral processing unit (CPU) 50 which may be a Pentium processormanufactured by Intel Corporation, Santa Clara, Calif., running theWindows 98 Operating System developed by Microsoft Corporation, Redmond,Wash. The CPU 50 is directly coupled to a display monitor 52, which isused to view the images, and a keyboard 54. A mouse 55 permits the userto readily communicate with the CPU 50. The CPU 50 is in directcommunication with a local printer 58, such as an Epson Stylus Photo 700printer, which produces hard copy prints of the images captured by thedigital camera 10.

In accordance with the present invention, a database is provided infirmware stored in the firmware memory 28 of the digital camera 10. Thedatabase, which is preferably a profile table, can include a pluralityof customized profiles. These customized profiles each contain aplurality of image utilization fields which are used in connection withthe transfer of images from the digital camera 10 to the host computer40 or other external device, and the subsequent utilization of thetransferred images. For example, suppose a user wants to upload imagesto the host computer 40. A user either creates a new customized profileor selects an existing customized profile which defines options for howthe image transfer is to be conducted. The customized profile can beproduced in advance on the host computer 40 or directly on the digitalcamera 10 by a user actuating a keyboard 54 or the user interface 24,respectively. Preferably, the digital camera 10 is provided with aprofile table containing a default profile which can be customized bythe user. Multiple profiles can be produced by a user or users, and suchprofiles can be selected for appropriate transfer and utilization of thecaptured images to the host computer 40. These profiles are used inconjunction with a digital image transfer application program residenton the host computer 40, which will be described later.

A profile index is stored in each digital image file, for example, in alocation or tag of an “Exif” header of a JPEG compressed image file.This profile index, which is preferably a profile name, indicates thecorresponding customized profile that has been selected for theparticular captured image. Alternatively, the profile index can be aprofile number stored in the digital image file. The “Exif” image formatis defined in “Digital Still Camera Image File Format (Exif)” version2.1, July 1998 by the Japan Electronics Industries DevelopmentAssociation (JEIDA), Tokyo, Japan. This format includes an Exifapplication segment that stores particular image metadata, for example,the date and time the picture was captured, the lens f/number and othercamera settings, and image captions or comments that can be selected orentered by the camera user.

FIGS. 2A and 2B are flow diagrams showing the steps used in creating orediting a customized profile in accordance with the present invention.In particular, FIG. 2A shows the steps used in creating or editing acustomized profile directly on the digital camera 10. As shown in block100, to edit a profile on the digital camera 10, a user selects an“Autotransfer Preference Menu” on the image display 22 of the digitalcamera 10 by depressing user buttons on the camera user interface 24. Alist of current profiles appears on the image display 22 along with an“Edit Profile” option and a “Create New Profile” option (block 110). SeeFIG. 6 for an example of the “Autotransfer Preference Menu” displayed onthe image display 22 of the digital camera 10 containing a list ofrepresentative profiles, and the “Edit Profile” and “Create New Profile”options. As shown in block 120 of FIG. 2A, the user can produce anentirely new profile or can create a new profile by modifying anexisting profile. Once a new profile has been produced, or an existingprofile has been altered, the profile table can be saved on theremovable memory card 30 or in the firmware memory 28 shown in FIG. 1(block 130).

FIG. 2B shows the steps used in producing or editing a customizedprofile on the host computer 40. As shown in block 200, the user firstconnects the digital camera 10 to the host computer 40 using theinterface cable 36. The host computer 40 detects the presence of thedigital camera 10 (block 210) and obtains a profile table on the digitalcamera 10 (block 220). The host computer 40 then “synchronizes” with theprofile table on the particular digital camera 10 (block 230) to ensurethat there is one-to-one correspondence between the profile table on theparticular digital camera 10 and a profile table resident on the hostcomputer 40. A dialog box opens on the display monitor 52 of the hostcomputer 40 with the synchronized profile table so that individualprofiles in the profile table can be edited (block 240). The new profiletable can be saved to the hard drive 56 of the host computer 40 and tothe digital camera 10 (block 250).

As previously described, each customized profile in the profile tablestored in the firmware memory 28 contains a plurality of imageutilization fields indicating the desired conditions to be used duringthe transfer of a captured image from the digital camera 10 to anexternal device, such as the host computer 40 or the Network ServiceProvider 70 shown in FIG. 1. Such image utilization fields can include,for example, an event description or title of the captured image, aprefix for the image file name, an index field for the image file name,the format of the image file, a destination directory, and an imageediting application software preference. A customized profile will nowbe described in more detail with reference to an example shown in FIG.3A. As shown on line 1 of FIG. 3A, the customized profile is entitled“John's Home Use.” The local options for the host computer 40 are shownin lines 3-10, and the Network Options for the Network Service Provider70 are shown in lines 13-17. Lines 2 and 12 are not part of thecustomized profile, but have been included for clarity of explanation.In this example, the images are to be filed directly to the KodakPicture Network (KPN) server under the user's account in a folder called“Sam's 1st Birthday” (line 13 of FIG. 3A). Each image file is to beprefaced with “Sam's 1Bday” (line 15 of FIG. 3A) and numerically orderedusing the 01 suffix (line 16). The images will be converted to JPEGformat (line 17 of FIG. 3A). Lower resolution images are to be stored tothe local hard drive 56 on the host computer 40 under the directory “c:\Sam's 1^(st) Birthday” using the same filename and format (line 3 ofFIG. 3A). Afterwards, Adobe PhotoDeluxe software is run with all localimages loaded (line 8 of FIG. 3A).

When the transfer of the image from the digital camera 10 to theexternal device has finished, an option of audible notification can beselected to audibly notify the user that the images have been properlytransferred so that the user can return to view the images (line 9 ofFIG. 3A).

A representative resulting Local destination directory for thecustomized profile shown in FIG. 3A is as follows:

 c:\Sam's 1st Birthday

Sam's 1Bday 01.jpg

Sam's 1Bday 02.jpg

Sam's 1Bday N.jpgA representative resulting KPN album is as follows:

 \\wasula\album\Sam's 1st Birthday

Sam's 1Bday 01.jpg

Sam's 1Bday 02.jpg

Sam's 1Bday N.jpgThe customized profile can be unique to a particular digital camera 10by using a unique camera identification as an image utilization field inthe profile. This provides information which is specific to theparticular digital camera 10, as well as a specific user of the digitalcamera 10. For example, the owner of the digital camera 10 may have auser customized graphical user interface which can be accessed via thecustomized profile. In addition, the customized profile may be dependenton a camera accessory which is utilized with the particular digitalcamera 10. The unique camera identification can also serve as a lockingmechanism so that only the owner of the particular digital camera 10 canaccess the customized profile containing the unique cameraidentification.

FIG. 3B shows an another example of a customized profile entitled “Tripto Disney”, and FIG. 3C shows an example of a default profile. The “Tripto Disney” and the default profile examples do not involve any Networkoperations, and therefore, the image utilization fields for the NetworkOptions in lines 13-17 are blank.

Turning now to FIG. 4, a flow diagram is shown which depicts the stepsused in capturing an image with the digital camera 10. These images canbe subsequently transferred for utilization by an external device inaccordance with the present invention. As shown in block 300, prior toimage capture, the user depresses user buttons on the camera userinterface 24 to cause the processor 18 to select a “Profile SelectionMode.” In this mode, the user then selects a desired profile from a listof existing profiles viewed on the image display 22 of the digitalcamera 10 (block 310). By again actuating user buttons on the camerauser interface 24, the user then selects an “Image Capture Mode” toenable images to be captured by the digital camera 10 and associatedwith the selected profile (block 315). Each captured image is taggedwith the currently selected profile and stored on the removable memorycard 30 (block 320).

Prior to image transfer from the digital camera 10 to the host computer40, a digital image transfer application program supplied with thedigital camera 10 is uploaded to the hard drive 56 of the host computer40. The digital image transfer application program is continuouslyoperated by the CPU 50. FIG. 5 is a flow diagram showing the steps usedin the automated transfer of images from the digital camera 10 to thehost computer 40. As shown in block 400, a user connects the digitalcamera 10 to the host computer 40 using the interface cable 36 (such asa USB cable). The digital image transfer application program on the harddrive 56 of the host computer 40 automatically detects the presence ofthe digital camera 10 (block 410). The USB driver, provided as part ofthe Windows 98 Operating System, interrupts the CPU 50 of the hostcomputer 40 so that the CPU 50 activates the digital image transferprocess.

The host computer 40 asks the digital camera 10 if it has the ability toautomatically transfer captured images to the host computer 40. If so,then the host computer 40 asks the digital camera 10 if it has an“Autotransfer Preference Mode” enabled (block 420). The “AutotransferPreference Mode” can be enabled using the user interface 24 on thedigital camera 10, such as by selecting a profile via an “AutotransferPreference Menu” (such as “Sam's 1st BDay” shown in FIG. 6). As shown inblock 425, the digital image transfer application program sends acommand to the digital camera 10 requesting the profile table from thefirmware memory 28. The digital camera 10 sends the entire profile tableto the digital image transfer application program in the CPU 50. In awell-known manner, the digital image transfer application programensures that there is one-to-one correspondence between the profiletable on the digital camera 10 and a profile table resident on the hostcomputer 40 (block 425).

The digital image transfer application program then requests thetransfer of the first image stored on the removable memory card 30 tothe host computer 40. The digital image transfer application programfirst reads the tag in the Exif header of the image file to betransferred (block 430) and identifies the corresponding customizedprofile for that image using the profile index (block 440). The digitalimage transfer application program sets up the appropriate imagetransfer conditions (block 450) and transfers the image from the digitalcamera 10 to the host computer 40 or other external device (block 460)in accordance with the image utilization fields defined in thecustomized profile. In particular, the digital image transferapplication program first looks at the destination directory field(e.g., directory or album), in the appropriate customized profile (e.g.,line 3 in FIG. 3A), and if such destination directory does not exist,creates that directory, for example, on either the hard drive 56 of thehost computer 40, or on a hard disk space on the Network ServiceProvider 70. The digital image transfer application program thenmodifies, as appropriate, the image name using the filename preface andsuffix fields (e.g., lines 5 and 6, respectively, in FIG. 3A), the imageformat using the format field (e.g., line 7 in FIG. 3A), and resolutionusing the resolution field (e.g., line 4 in FIG. 3A), and stores thetransferred image in the appropriate destination directory (e.g., line 3in FIG. 3A). After the image is transferred and stored in a destinationdirectory, the digital image transfer application program looks for an“image editing application preference” field (e.g., “RunApp” line 8 inFIG. 3A) in the profile of that image, for example, Adobe PhotoDeluxesoftware. If such a field exists, that preferred image editingapplication is automatically launched and the image is pulled into thatapplication for the user to access. The image can then be deleted fromthe removable memory card 30 of the digital camera 10 (block 470),according to the “Erase After Transfer” field (line 10 in FIG. 3A).Alternatively, a global preference can be stored in the firmware memory28 of the digital camera 10 and used for all transfers. It should benoted that if the image is deleted as a global preference, all imagesget deleted after transfer to the host computer 40 regardless of theindividual profiles. The above process is repeated for all capturedimages.

While the preferred embodiment includes a plurality of differentprofiles that can be selected by the user for various images (e.g.,profiles shown in FIGS. 3A-3C), in an alternative embodiment, only asingle profile is used (e.g., all images are downloaded using theprofile in FIG. 3A). The single profile can, of course, be customized bythe user either using the user interface of the digital camera 10 or thehost computer 40.

Further, while the preferred embodiment allows the profile to becustomized and stored using both the digital camera 10 and the hostcomputer 40, in another alternative embodiment, profiles are created andstored only on the host computer 40. A default profile can be selectedor created by the user on the host computer 40 and stored on the harddrive 56 of the host computer 40. This profile is then used for theimages downloaded from the digital camera 10 to the host computer 40.

In accordance with the present invention, a profile can be locked sothat only the owner of the profile can upload images to the externaldevice. The locking and unlocking of a profile can be accomplished bythe use of a password. Such a password would be stored in the firmwarememory 28 of the digital camera 10.

A computer program product may include one or more storage medium, forexample; magnetic storage media such as magnetic disk (such as a floppydisk) or magnetic tape; optical storage media such as optical disk,optical tape, or machine readable bar code; solid-state electronicstorage devices such as random access memory (RAM), or read-only memory(ROM); or any other physical device or media employed to store acomputer program having instructions for practicing a method accordingto the present invention.

The present invention has been described in detail with particularreference to certain preferred embodiments thereof, but it will beunderstood that variations and modifications can be effected within thespirit and scope of the invention.

Parts List 10 digital camera 12 lens 14 image sensor 16analog-to-digital converter 18 processor 20 memory card interface 22image display 24 user buttons 26 host interface 28 firmware memory 30removable memory card 32 CD-ROM disc 34 Floppy disk 36 interface cable40 host computer 42 CD-ROM drive 44 Floppy disk drive 46 interface 48memory card reader 50 central processing unit 52 display monitor 54keyboard 55 mouse 56 hard drive 58 home printer 60 modem 70 NetworkService Provider

APPENDIX Below is a code snippet written in Visual C++ that is used inthe digital image transfer application program which would run on thehost computer upon detection of the camera connection. voidCMainFrame::DC210_DoAutoTransfer( ) { OSErr err; HCURSOR  hcursor; intiChoice; int iAutoElement; CString cstrTitle; CString cstrDir; CStringcstrFilePrefix; CString cstrApp; char cAppArg; int flgDir; intflgFilePrefix; int flgApp; int iPicCnt; LPTSTR szFileName; LPTSTRszPathName; LPTSTR szLastSlashPtr; LPTSTR szAppArgsPtr; LPTSTRszAppArguments; KillTimer( AUTOPOLL_TIMER);  //wake up camera if((err =OpenCamera( )) == DC210_CameraNotConnected) { CloseCamera( );SetTimer(AUTOPOLL_TIMER, AUTOPOLL_INTERVAL, NULL); //Polling timer tofind camera return; } //for thumbnail display long size =DC210_ThumbWidth * DC210_ThumbHeight * 3L; HGLOBAL   hbs; if((hbs=GlobalAlloc(GHND, size)) == NULL) { return; } dcPictInfo.ThumbPtr =(HCHARPTR)GlobalLock(hbs);  // Get the Automation Choice, if “Off” thendo nothing err = DC210_GetAutomation(&dcCamera, (m_pApp−>dcAutomation));err = DC210_GetAutomationChoice(&dcCamera, &iChoice); if(iChoice) { //format utilization fields for use in transferring images to PCszFileName = (LPTSTR)malloc(sizeof(TCHAR)*256); szPathName =(LPTSTR)malloc(sizeof(TCHAR)*256); szAppArguments =(LPTSTR)malloc(sizeof(TCHAR)*1024); iAutoElement = iChoice − 1; // setthe automation index  // Assign AutoElement Properties cstrTitle =(m_pApp−>dcAutomation)[iAutoElement].szName; // Title of element cstrDir= (m_pApp−>dcAutomation)[iAutoElement].szDir; // Directory to saveimages cstrFilePrefix = (m_pApp−>dcAutomation)[iAutoElement].szFileName;// Prefix to modify each image filename cstrApp=(m_pApp−>dcAutomation)[iAutoElement].szApp; // Image Editing App tostart  // Determine active fields flgDir = 1; // assume activeflgFilePrefix = 1; flgApp = 1; if(cstrDir.IsEmpty( ) ∥ cstrDir==“ ”) {flgDir = 0; cstrDir = DEFAULT_AUTOTRANSFER_DIR; }if(cstrFilePrefix.IsEmpty( ) ∥ cstrFilePrefix==“ ”) { flgFilePrefix = 0;cstrDir = DEFAULT_AUTOTRANSFER_FILE_PREFIX; } if(cstrApp.IsEmpty( ) ∥cstrApp==“ ”) { flgApp = 0; } else { strcpy( szPathName, (LPCSTR)cstrApp);  // Extract options for App szAppArgsPtr = strrchr( szPathName, ‘-’);cAppArg = *(szAppArgsPtr+1); *(szAppArgsPtr) = ‘\0’; strcpy(szAppArguments, szPathName ); cstrApp.Format(“%s”,szAppArguments);  //Extract pathname to App szLastSlashPtr = strrchr( szPathName, ‘\\’);*(szLastSlashPtr+1) = ‘\0’; //strcpy( szAppArguments, cstrApp ); } err =DC210_GetStatus(&dcCamera, &dcStatus, (VOIDPTR)&dc200Status);  // Getall the imagesfor(iPicCnt=0;iPicCnt<gDCStatusPtr−>NumPictTaken;iPicCnt++) { pictNum =iPicCnt+1; err = DC210_GetCameraPictInfo(&dcCamera, pictNum, thumbFlag,&dcImgProcData, &dcPictInfo, (VOIDPTR)&dc200PictInfo);ConvertThumbnailToBitmap(this,&dcPictInfo, &dcImgProcData); memset((void*)szFileName, NULL, sizeof(szFileName));m_cstrImgFileSave.Format(“Transferring Image %s%d.jpg”,(LPCSTR)cstrFilePrefix,pictNum); wsprintf((LPSTR)szFileName,“%s\\%s%d.jpg”, (LPCSTR)cstrDir,(LPCSTR)cstrFilePrefix,pictNum);GetAutoPicture(szFileName); // get a single image  // build command lineargument - file list if( (flgApp) && (cAppArg==‘f’) &&((strlen(szAppArguments)+strlen(szFileName)+2) < 1024)) { strcat(szAppArguments,“ ”); strcat( szAppArguments, szFileName ); } }  // buildcommand line argument - directory if( (flgApp) && (cAppArg==‘d’)) {strcat( szAppArguments, “ ” ); strcat( szAppArguments, (LPCSTR)cstrDir); } // If App has been specified then run it and import pictures if(0)//debug //if(flgApp) { STARTUPINFO StartupInfo; PROCESS_INFORMATIONProcessInformation; DWORD fdwCreate = 0;   // flags for CreateProcessmemset(&StartupInfo,0,sizeof(StartupInfo)); StartupInfo.cb =sizeof(StartupInfo); fdwCreate |= CREATE_UNICODE_ENVIRONMENT; // run thepreferred image application as indicated by the customized profile BOOLcrtproc = CreateProcess( (LPCTSTR)cstrApp, szAppArguments,//szFileName,NULL, NULL, TRUE, fdwCreate, NULL, szPathName, &StartupInfo,&ProcessInformation ); DWORD dwError = GetLastError( ); }free(szFileName); free(szPathName); free(szAppArguments); }  // ReleaseThumbnail GlobalUnlock(hbs); GlobalFree(hbs); dcPictInfo.ThumbPtr =NULL; if( gHThumbBitmap != NULL) { DeleteObject(gHThumbBitmap);gHThumbBitmap = NULL; }  // put the camera to sleep CloseCamera( );SetTimer(AUTOPOLL_TIMER, AUTOPOLL_INTERVAL, NULL); // Polling timer tofind camera DoneFlag = 1; //debug } Below are code modules of commandsused in the camera firmware in order to support the transfer of imagesto the host computer. 1) Send the Profile Table to the host computer:SBYTE ol_send_automation_table(SBYTE *rcv_buf) { SBYTE answer, unsignedint uiDataCnt; unsigned int ui256Cnt; unsigned int ui256RemainderCnt;unsigned int uiBlkSzToSend; unsigned int uiCnt; UBYTE iData[256+5]; intATAFile; DCSTAT strDosStat; char FileName [16];  // acknowledge hostcomputer if(ol_dl_send_1byte(SYSC_ACK)){ return(COM_ERR); } /* Read theflashcard for automation data */ strcpy(FileName,AUTOMATION_FILE);ATAFile = DCDosOpen(DCATACard, FileName O_RDONLY); if( ATAFile < 0 ) {return(ERROR); } DCDosFstat (ATAFile, &strDosStat); uiDataCnt =(unsignedint)strDosStat.st_size; ui256Cnt = (unsigned int)(uiDataCnt/256);ui256RemainderCnt = (unsigned int)(uiDataCnt%256); for(uiCnt=0;uiCnt<256;uiCnt++) iData[uiCnt] = 0x00; iData[0] = ui256Cnt + 1;  //read automation profile file DCDosRead(ATAFile, &iData[1], 255);ol_send_pack( iData, PACK_SIZE3, PACK_SIZE3);  // send profile to hostcomputer for(uiCnt=1;uiCnt<=ui256Cnt;uiCnt++) { if(uiCnt==ui256Cnt)uiBlkSzToSend = (ui256RemainderCnt+1); else uiBlkSzToSend = 256;for(uiCnt=0;uiCnt<256;uiCnt++) iData[uiCnt] = 0x00; DCDosRead(ATAFile,&iData[0], uiBlkSzToSend); ol_send_pack( iData, PACK_SIZE3, PACK_SIZE3);} DCFSTimeSet(ATAFile); DCDosClose(ATAFile); return(OK); } 2) Receivethe Profile Table from the host computer: SBYTE ol_retrieve_automationtable(SBYTE *rcv_buf) { unsigned int uiCnt; unsigned int ui256Cnt;unsigned int uiByteCnt; unsigned int ui256RemainderCnt; unsigned intuiBlkSzToWrite; SBYTE answer; SBYTE pcb; int ATAFile; char FileName[16];UBYTEiData[256+5]; UBYTE card_status; char dummy[5];  // acknowledge thehost computer if(ol_dl_send_1byte(SYSC_ACK)){ return(COM_ERR); } //receive the first data block of profile from the host computer answer =ol_receive_pack( iData, 255, &pcb); strcpy(FileName,AUTOMATION_FILE);DCDosDelete(DCATACard, FileName);  // open the removable memory cardATAFile = DCDosOpen(DCATACard, FileName, O_CREAT|O_WRONLY); if( ATAFile< 0 ){ return(ERROR); } uiByteCnt = (unsigned int)(iData[0]<<8);uiByteCnt |= (unsigned int)(iData[1]);  // determine how many datablocks to transfer ui256Cnt = (unsigned int)(uiByteCnt/256);ui256RemainderCnt = (unsigned int)(uiByteCnt%256); if(ui256Cnt) {uiBlkSzToWrite = 253; DCDosWsite(ATAFile, &iData[2], uiBlkSzToWrite);for(uiCnt=1;uiCnt<=ui256Cnt;uiCnt++) { if(uiCnt==ui256Cnt)uiBlkSzToWrite = ui256RemainderCnt; else uiBlkszToWrite = 255; // readprofile data and write it to the removable memory card answer =ol_receive_pack( iData, 255, &pcb); DCDosWrite(ATAFile, &iData[0],uiBlkSzToWrite); } } else { uiBlkSzToWrite = ui256RemainderCnt;DCDosWrite(ATAFile, &iData[2], uiBlkSzToWrite); } DCFSTimeSet(ATAFile);// close the removable memory card DCDosClose(ATAFile); return(OK); } 3)Send the Profile currently selected on the digital camera to the hostcomputer: SBYTE ol_snd_auto_choice(SBYTE *rcv_buf) { SBYTE bAutoChoice;static struct camera_value CameraValues; if(ol_dl_send_1byte(SYSC_ACK)){return(COM_ERR); } (void)get_camera_value(& CameraValues); bAutoChoice =(SBYTE)CameraValues.autotransfer_on; ol_dl_send_1byte(bAutoChoice);return(OK); } 4) Receive the new Profile selection from the hostcomputer: SBYTE ol_rcv_auto_choice(SBYTE *rcv_buf) UBYTE bAutoChoice;if(ol_dl_send_1byte(SYSC_ACK)){ return(COM_ERR); } bAutoChoice =(UBYTE)(*(rcv_buf + 3)); set_autotransfer( bAutoChoice ); return(OK); }

What is claimed is:
 1. A method comprising: transferring a plurality ofimage files from a memory of a digital imaging device to an externaldevice, wherein the external device comprises an external devicedatabase; accessing a set of image utilization fields of at least onecustomizable profile, the at least one customizable profile being storedon a database of the digital imaging device; modifying each transferredimage file by the external device in accordance with the set of imageutilization fields; and storing the modified transferred image filealong with the set of image utilization fields in the external devicefor subsequent use; wherein one of the set of image utilization fieldsis a unique imaging device identification that is specific to aparticular digital imaging device and that permits access to at leastone of the customized profiles.
 2. The method according to claim 1,wherein the set of image utilization fields is stored on the externaldevice.
 3. The method according to claim 1, further comprising editingthe customizable profile in the external device.
 4. The method accordingto claim 1, wherein the set of image utilization fields includes adeletion field and further including the step of deleting thetransferred image files from the memory in accordance with the deletionfield after storage of such image files in the external device.
 5. Themethod according to claim 1, wherein the set image utilization fieldsincludes an image editing preference application software fielddesignating a software application stored in the external device andfurther including the step of applying the designated user preferredapplication software to the modified transferred captured image.
 6. Themethod of claim 1, wherein the database includes a plurality ofprofiles.
 7. The method of claim 1, wherein the set of utilizationfields includes a filename suffix field or filename prefix field that isappended to the imaging device filenames.
 8. The method of claim 1,wherein the external device is a network service provider.
 9. A systemcomprising one or processors configured to: transfer a plurality ofimage flies from a memory of a digital imaging device to an externaldevice, wherein the external device comprises an external devicedatabase; and transfer a set of image utilization fields of at least onecustomizable profile, the at least one customizable profile being storedon a database of the digital imaging device; wherein the external devicemodifies each transferred image file in accordance with the set of imageutilization fields, wherein the external device stores the modifiedtransferred image file along with the set of image utilization fieldsfor subsequent use, and wherein one of the set of image utilizationfields is a unique imaging device identification that is specific to aparticular digital imaging device and that permits access to at leastone of the customized profiles.
 10. The system of claim 9, wherein theset of image utilization fields is stored on the external device. 11.The system of claim 9, wherein the one or more processors are furtherconfigured to edit the customizable profile in the external device. 12.The system of claim 9, wherein the set of image utilization fieldsincludes a deletion field and further including the step of deleting thetransferred image files from the memory in accordance with the deletionfield after storage of such image files in the external device.
 13. Thesystem of claim 9, wherein the set image utilization fields includes animage editing preference application software field designating asoftware application stored in the external device, and wherein theexternal device is configured to apply the designated user preferredapplication software to the modified transferred captured image.
 14. Thesystem of claim 9, wherein the database includes a plurality ofprofiles.
 15. The system of claim 9, wherein the set of utilizationfields includes a filename suffix field or filename prefix field that isappended to the imaging device filenames.
 16. The system of claim 9,wherein the external device is a network service provider.
 17. Anon-transitory computer-readable medium having instructions storedthereon, the instructions comprising: instructions to transfer aplurality of image files from a memory of the digital imaging device toan external device, wherein the external device comprises an externaldevice database; and instructions to transfer a set of image utilizationfields of at least one customizable profile, the at least onecustomizable profile being stored on a database of the digital imagingdevice; wherein the external device modifies each transferred image filein accordance with the set of image utilization fields, wherein theexternal device stores the modified transferred image file along withthe set of image utilization fields for subsequent use, and wherein oneof the set of image utilization fields is a unique imaging deviceidentification that is specific to a particular digital imaging deviceand that permits access to at least one of the customized profiles. 18.The non-transitory computer-readable medium of claim 17, wherein the setof image utilization fields is stored on the external device.
 19. Thenon-transitory computer-readable medium of claim 17, wherein theinstructions further comprise instructions edit the customizable profilein the external device.
 20. The non-transitory computer-readable mediumof claim 17, wherein the set of image utilization fields includes adeletion field and further including the step of deleting thetransferred image files from the memory in accordance with the deletionfield after storage of such image files in the external device.